package com.shcz.migu.utils;

import android.text.TextUtils;

import com.orhanobut.logger.Logger;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by Sea Zhang on 2017/6/13.
 */

public class FliterHtmlTag {


    /**
     * 定义script的正则表达式
     */
    private static final String REGEX_SCRIPT = "<script[^>]*?>[\\s\\S]*?<\\/script>";
    /**
     * 定义style的正则表达式
     */
    private static final String REGEX_STYLE = "<style[^>]*?>[\\s\\S]*?<\\/style>";
    /**
     * 定义HTML标签的正则表达式
     */
    private static final String REGEX_HTML = "<[^>]+>";
    /**
     * 定义空格回车换行符
     */
    private static final String REGEX_SPACE = "\\s*|\t|\r|\\n";

    public static String delHTMLTag(String htmlStr) {
        // 过滤scri pt标签
        Pattern p_script = Pattern.compile(REGEX_SCRIPT, Pattern.CASE_INSENSITIVE);
        Matcher m_script = p_script.matcher(htmlStr);
        htmlStr = m_script.replaceAll("");
        // 过滤style标签
        Pattern p_style = Pattern.compile(REGEX_STYLE, Pattern.CASE_INSENSITIVE);
        Matcher m_style = p_style.matcher(htmlStr);
        htmlStr = m_style.replaceAll("");
        // 过滤html标签
        Pattern p_html = Pattern.compile(REGEX_HTML, Pattern.CASE_INSENSITIVE);
        Matcher m_html = p_html.matcher(htmlStr);
        htmlStr = m_html.replaceAll("");
        // 过滤空格回车标签
        Pattern p_space = Pattern.compile(REGEX_SPACE, Pattern.CASE_INSENSITIVE);
        Matcher m_space = p_space.matcher(htmlStr);
        htmlStr = m_space.replaceAll("");
        htmlStr = htmlStr.replace("&nbsp;", " ");
        htmlStr = htmlStr.replace("n", "\r\n");
        return htmlStr.trim(); // 返回文本字符串
    }
    //将HTML串拆分为单元html串,并放置在list中

    /**
     * @param htmlContent 原html串
     * @param s           子串  ><
     * @return 根据子串的位置截取来的集合
     */
    public static List<String> convertPTHtml(String htmlContent, String s) {
        List<String> result = new ArrayList<>();
        StringUtils utils = new StringUtils();
        String content = htmlContent;
        Logger.w(utils.countStr(htmlContent, s) + "");
        for (int i = 0; i < utils.countStr(htmlContent, s) + 1; i++) {
            String strLeft = "";
            if (TextUtils.isEmpty(content))
                break;
            if (content.contains(s))
                strLeft = content.substring(0, content.indexOf(s) + 1);
            else {
                strLeft = content;
                Logger.i(strLeft);
                result.add(strLeft);
                break;
            }
            Logger.i(strLeft);
            result.add(strLeft);
            content = content.substring(content.indexOf(s) + 1);
        }
        return result;
    }
}
